package com.ruoyi.system.domain.vo;

import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;

/**
 * @author LANIAKEA
 * @version 1.0
 * @date 2025/3/5
 */
public class QyWxMessage {
    /**
     * 成员Id
     */
    private String touser;
    /**
     * 部门ID列表，多个接收者用‘|’分隔，最多支持100个。当touser为@all时忽略本参数
     */
    private String toparty;
    /**
     * 	标签ID列表，多个接收者用‘|’分隔，最多支持100个。当touser为@all时忽略本参数
     */
    private String totag;
    /**
     * 消息类型，此时固定为：markdown
     */
    private String msgtype;
    /**
     * 企业应用的id，整型。企业内部开发，可在应用的设置页面查看；第三方服务商，可通过接口 获取企业授权信息 获取该参数值
     */
    private int agentid;
    /**
     * 	markdown内容，最长不超过2048个字节，必须是utf8编码
     */

    private Markdown markdown;
    /**
     * 表示是否开启重复消息检查，0表示否，1表示是，默认0
     */
    private int enable_duplicate_check;
    /**
     * 表示是否重复消息检查的时间间隔，默认1800s，最大不超过4小时
     */
    private int duplicate_check_interval;

    // Getters and Setters
    public String getTouser() {
        return touser;
    }

    public void setTouser(String touser) {
        this.touser = touser;
    }

    public String getToparty() {
        return toparty;
    }

    public QyWxMessage setToparty(String toparty) {
        this.toparty = toparty;
        return this;
    }

    public String getTotag() {
        return totag;
    }

    public QyWxMessage setTotag(String totag) {
        this.totag = totag;
        return this;
    }

    public String getMsgtype() {
        return msgtype;
    }

    public QyWxMessage setMsgtype(String msgtype) {
        this.msgtype = msgtype;
        return this;
    }

    public int getAgentid() {
        return agentid;
    }

    public QyWxMessage setAgentid(int agentid) {
        this.agentid = agentid;
        return this;
    }

    public  Markdown getMarkdown() {
        return markdown;
    }

    public QyWxMessage setMarkdown(@NotBlank(message = "发送内容不能为空") Markdown markdown) {
        this.markdown = markdown;
        return this;
    }

    public int getEnable_duplicate_check() {
        return enable_duplicate_check;
    }

    public QyWxMessage setEnable_duplicate_check(int enable_duplicate_check) {
        this.enable_duplicate_check = enable_duplicate_check;
        return this;
    }

    public int getDuplicate_check_interval() {
        return duplicate_check_interval;
    }

    public QyWxMessage setDuplicate_check_interval(int duplicate_check_interval) {
        this.duplicate_check_interval = duplicate_check_interval;
        return this;
    }

    public static class Markdown {

        private String content;

        public Markdown() {
        }

        public Markdown(String content) {
            this.content = content;
        }

        // Getter and Setter
        public String getContent() {
            return content;
        }

        public void setContent(String content) {
            this.content = content;
        }
    }
}
